home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1994 August / August CD.bin / Shareware / Education / numericalmethods Folder / chap_4 / a4_3a.m < prev    next >
Encoding:
Text File  |  1994-06-05  |  1.9 KB  |  75 lines  |  [MATS/MATL]

  1. echo off;
  2. % NUMERICAL METHODS: MATLAB Programs, (c) John H. Mathews 1994
  3. % To accompany the text:
  4. % NUMERICAL METHODS for Mathematics, Science and Engineering, 2nd Ed, 1992
  5. % Prentice Hall, Englewood Cliffs, New Jersey, 07632, U.S.A.
  6. % This free software is complements of the author.
  7.  
  8. % Algorithm 4.3 (Lagrange Approximation).
  9. % Section    4.3,    Lagrange Approximation, Page 224
  10. echo on; clc; format short; hold off;
  11. % Investigation of the Lagrange coefficient polynomials.
  12.  
  13. % The root locations and unit values  L   (x ) = 1
  14. %                                      n,j  j
  15. % of the Lagrange coefficient polynomials can be explored.
  16.  
  17. % n+1 are points needed to construct the coefficient polynomials.
  18.  
  19. % n+1 coefficient polynomials are constructed.
  20.  
  21. % The abscissas are stored in  X.
  22.  
  23. % The points are counted  k=1,2,...,n+1.
  24.  
  25. pause % Press any key to continue.
  26.  
  27. clc;
  28. n = 4;  % This example uses the degree n = 4.
  29. a = 0;
  30. h = 1;
  31. b = n;
  32. X = a:h:b;
  33. Y = X;
  34.  
  35. [W,L] = lagran(X,Y);
  36.  
  37. pause  % Press a key to view the polynomials.
  38. clc
  39. x = X;
  40. a = min(X);
  41. b = max(X);
  42. h = (b-a)/150;
  43. x1 = a:h:b;
  44.  
  45. k  =  1;
  46. n1 = n+1;
  47. while k<=n
  48.   Z = zeros(1,n1);
  49.   Z(k) = 1;
  50.   y1 = polyval(L(k,:),x1);
  51.   plot(X,Z,'or',x1,y1,'-g');
  52.   hold on;
  53.   plot([a b],[0 0],'b',[0 0],[-10000 10000],'b');
  54.   xlabel('x');
  55.   ylabel('y');
  56.   Mx1 = 'The Lagrange coefficient polynomial  L';
  57.   Mx2 =[Mx1,num2str(n),',',num2str(k),' (x)'];
  58.   title(Mx2);
  59.   grid;
  60.   hold off;
  61.   shg; pause    % Press any key to continue.
  62.   Mx3 = 'The abscissas are:';
  63.   Mx4 = 'The ordinates are:';
  64.   clc,disp(Mx2),disp(L(k,:)),disp(''),disp(Mx3),disp(X),disp(Mx4),disp(Z)
  65.   pause    % Press any key to continue.
  66.   k = k+1;
  67. end
  68.  
  69. clc;
  70. Mx1 = 'The abscissas are an n+1 dimensional vector X.';
  71. Mx2 = 'The vector evaluation  Ln,k(X)  of X with each a Lagrange';
  72. Mx3 = 'coefficient polynomial produces a standard base vector.';
  73. clc,disp(Mx1),disp(X),disp(Mx2),disp(Mx3),...
  74. for k = 1:n+1,disp(round(polyval(L(k,:),X))), end
  75.